We have developed a system and various methods for creating and using interlocking trees datastores. In particular, these structures and methods have been described in copending patent applications U.S. Ser. Nos. 10/385,421, and 10/666,382, by inventor Mazzagatti. While the system and method we describe in this patent relate with particularity to the specific interlocking trees datastores which inventor Mazzagatti hereof described in the above-referenced patent (applications), the system and Methods described herein may be applicable to similar structures.
While the interlocking trees datastores structure created by the system originally described in co-pending patent application U.S. Ser. No. 10/385,421 provides many useful traits for relating the data to itself in various ways, and for generating results to various inquiries without the need to generate special structures to obtain the results, heretofore there have been fundamental limits oh its usefulness. One of the limitations was that the data structure in memory in a computer works while in place, but was not amenable to moving, or to saving and subsequent restoration. We previously had to re-teach, that is, recreate (or, more exactly, allow our inventive systems to re-create) an entire new (copy or instantiation) of the interlocking trees datastore every time we needed to move it or needed to shut down the computer system in which it existed;. Thus, the availability of portability and longevity for interlocking trees datastores despite computer system failure were unavailable to the interlocking trees datastores prior to this development.
Given that the data structure we created did not exist in computer systems prior to our development, we found little in the way of prior designs for such systems to accommodate our need. Accordingly we were forced to design a specific way to save our structure so that it could be restored without losing the connections that make it what it is; that it, the pointer structure needed to be restored correctly, despite the changed address space in new systems into which it might be ported or in the same computer system from which it was saved and to which it needed to be restored. The root nodes needed their data retained and access to their pointers into the structure restored. All of the nodes needed to have the same access to their pointers, even though they may all, later be restored to different addresses, and we needed to accomplish this in an OS-independent and machine-independent way so that the interlocking trees datastore could be used in any computer environment. A tree-based datastore comprising a forest of interconnected trees is generated and/or accessed. The tree-based datastore comprises a first tree that depends from a first root node and may include a plurality of branches. Each of the branches of the first tree ends in a leaf node. Each leaf node may represent an end product, or a subcomponent node. A second root of the same tree-based datastore is linked to each leaf node representing an end product. Finally, the tree-based datastore, comprises a plurality of trees in which the root node of each of these trees can be described as an elemental node. The root node of each of these trees may be linked to one or more nodes in one or more branches of the first tree. The nodes of the tree-based datastore contain only pointers to other nodes in the tree-based datastore, and may contain additional fields wherein one such may be a count field. Additionally, means to get probabilities of the coincidence of variables related to particular nodes as identified by desired contexts within one or more defined foci are described. Further, the application of logical operators to queries regarding such variables is shown.